package com.zenithmind.article.service;

import org.springframework.web.multipart.MultipartFile;

/**
 * 文章文件服务接口
 * 遵循接口隔离原则：专门处理文件相关操作
 * 遵循单一职责原则：只负责文件上传、下载等操作
 */
public interface ArticleFileService {

    /**
     * 上传文章封面
     * 
     * @param file 封面文件
     * @return 文件URL
     */
    String uploadCover(MultipartFile file);

    /**
     * 删除文章封面
     * 
     * @param coverUrl 封面URL
     * @return 是否成功
     */
    Boolean deleteCover(String coverUrl);

    /**
     * 验证文件格式
     * 
     * @param file 文件
     * @return 是否有效
     */
    Boolean validateFile(MultipartFile file);

    /**
     * 获取文件大小限制
     * 
     * @return 大小限制（字节）
     */
    Long getMaxFileSize();
}
